<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        const person = {
            name: 'jack',
            age: 21,
            language: ['java', 'js', 'css']
        };
        console.log(Object.keys(person))//["name","age","language"]
        console.log(Object.values(person))//["jack",21,Array(3)]
        console.log(Object.entries(person))//[Array(2),Array(2),Array(2)]

        const target = { a: 1 }
        const source1 = { b: 2 }
        const source2 = { c: 3 }
        //Object.assign方法的第一个参数是目标对象，后面的对象都是源对象
        Object.assign(target, source1, source2)
        console.log(target)//{a: 1, b: 2, c: 3}

        //声明对象的简写
        const age = 23;
        const name = "zhangsan";
        const person1 = { age: age, name: name };
        console.log(person1)

        const person2 = { age, name };
        console.log(person2)

        //对象的函数属性简写
        let person3 = {
            name: "jack",
            //以前
            eat: function (food) {
                console.log(this.name + "在吃" + food)
            },
            eat2:food=>{
                console.log(person3.name + "在吃" + food)
            },
            eat3(food){
                console.log(this.name + "在吃" + food)
            }
        }

        person3.eat("香蕉")
        person3.eat2("苹果")
        person3.eat3("橘子")

        //对象扩展运算符
        //1.拷贝对象
        let p1={name:"Amy",age:15}
        let somenoe={...p1}
        console.log(somenoe)//{name: 'Amy', age: 15}
        //2.合并对象
        let age1={age:15};
        let name1={name:"Amy"}
        let p2={name:"zhangsan"}
        p2={...age1,...name1}
        console.log(p2);//{age: 15, name: 'Amy'}

    </script>
</body>

</html>